package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.ParkDevInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护停车场采集设备信息的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
public interface DubboParkDevInfoService {
	
	/**
	 * 返回所有停车场采集设备信息
	 * @return ResultPojo 所有停车场采集设备信息
	 */
	public ResultPojo getParkDevInfo();
	
	/**
	 * 分页返回所有停车场采集设备信息
	 * @param page 分页对象
	 * @return ResultPojo 包含所有停车场采集信息的分页对象
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageParkDevInfo(Page page);
	/**
	 * 返回所有停车场采集设备信息
	 * @param manageDept 
	 * @param orderSeq 
	 * @param regionId 
	 * @param parkId 
	 * @param pdevName 
	 * @param pdevId 
	 * @return ResultPojo 所有停车场采集设备信息
	 */
	public ResultPojo getParkDevInfo(String pdevId, String pdevName, String parkId, String regionId, String orderSeq, String manageDept);
	
	/**
	 * 分页返回所有停车场采集设备信息
	 * @param manageDept 
	 * @param orderSeq 
	 * @param regionId 
	 * @param parkId 
	 * @param pdevName 
	 * @param pdevId 
	 * @param page 分页对象
	 * @return ResultPojo 包含所有停车场采集信息的分页对象
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageParkDevInfo(String pdevId, String pdevName, String parkId, String regionId, String orderSeq, String manageDept, Page page);
	
	/**
	 * 返回指定编码的停车场采集设备信息
	 * @param pdevId 设备编码
	 * @return ResultPojo 停车场采集设备信息
	 */
	public ResultPojo getParkDevInfoById(String pdevId);
	
	/**
	 * 按名称匹配并返回停车场采集设备信息
	 * @param pdevName 设备名称 
	 * @return ResultPojo 停车场采集设备信息
	 */
	public ResultPojo getParkDevInfoByName(String pdevName);
	
	/**
	 * 返回某一停车场的所有采集设备信息
	 * @param parkId 停车场编码
	 * @return ResultPojo 停车场采集设备信息
	 */
	public ResultPojo getParkDevInfoByParkId(String parkId);
	
	/**
	 * 分页返回某一停车场的所有采集设备信息
	 * @param parkId 停车场编码
	 * @param page 分页对象
	 * @return ResultPojo 停车场采集设备信息
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageParkDevInfoByParkId(String parkId, Page page);
	
	/**
	 * 返回与前缀相匹配的设备编码最大值，用于手工生成新的设备编码
	 * @param prefixPdevId 停车场设备编码前缀
	 * @return String 与前缀相匹配的设备编码最大值
	 */
	public String getMaxPdevId(String prefixPdevId);
	
	/**
	 * 添加一条停车场采集设备信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param parkDevInfoDto 设备信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addParkDevInfo(String token, ParkDevInfoDto parkDevInfoDto);
	
	/**
	 * 修改一条停车场采集设备信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param parkDevInfoDto 设备信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editParkDevInfo(String token, ParkDevInfoDto parkDevInfoDto);
	
	/**
	 * 删除指定编码的停车场采集设备信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param pdevId 设备编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeParkDevInfo(String token, String pdevId);
}
